package com.scalpel.common.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期工具类
 * Created by scalpel on 2017/1/5.
 */
public class DateUtil {

    /**
     * 日期默认格式
     * yyyy-MM-dd
     */
    private final static String dateFormate ="yyyy-MM-dd";

    /**
     * 带24小时时间的格式
     * yyyy-MM-dd HH:mm:ss
     */
    private final  static  String dateFormateHms ="yyyy-MM-dd HH:mm:ss";


    /**
     * 日期默认格式
     * yyyy-MM-dd
     */
    private final static String dateSpritFormate ="yyyy/MM/dd";

    /**
     * 带24小时时间的格式
     * yyyy-MM-dd HH:mm:ss
     */
    private final  static  String dateSpritFormateHms ="yyyy/MM/dd HH:mm:ss";


    /**
     * 获取当前日期
     * yyyy-MM-dd
     * @return
     */
    public static String getDateToStr()
    {
        return new SimpleDateFormat(dateFormate).format(new Date());
    }

    /**
     * 转换日期
     * yyyy-MM-dd
     * @return
     */
    public static String getDateToStr(Date date)
    {
        return new SimpleDateFormat(dateFormate).format(date);
    }

    /**
     * 转换日期
     * yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String getDateTimeToStr(Date date)
    {
        return new SimpleDateFormat(dateFormateHms).format(date);
    }

    /**
     * 获取当前日期和时间
     * yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String getDateTimeToStr()
    {
        return new SimpleDateFormat(dateFormateHms).format(new Date());
    }



    /**
     * 获取当前日期
     * yyyy/MM/dd
     * @return
     */
    public static String getDateToSpritStr()
    {
        return new SimpleDateFormat(dateSpritFormate).format(new Date());
    }

    /**
     * 转换日期
     * yyyy-MM-dd
     * @return
     */
    public static String getDateToSpritStr(Date date)
    {
        return new SimpleDateFormat(dateSpritFormate).format(date);
    }

    /**
     * 转换日期
     * yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String getDateTimeSpritToStr(Date date)
    {
        return new SimpleDateFormat(dateSpritFormateHms).format(date);
    }

    /**
     * 获取当前日期和时间
     * yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String getDateTimeSpritToStr()
    {
        return new SimpleDateFormat(dateSpritFormateHms).format(new Date());
    }

    /**
     * 解析字符串成date
     * yyyy-MM-dd
     * @param dateStr
     * @return
     * @throws ParseException
     */
    public static Date parseStringToDate(String dateStr) throws ParseException {
        return new SimpleDateFormat(dateFormate).parse(dateStr);
    }


    /**
     * 解析字符串成date
     * yyyy-MM-dd HH:mm:ss
     * @param dateStr
     * @return
     * @throws ParseException
     */
    public static Date parseStringToDateTime(String dateStr) throws ParseException {
        return new SimpleDateFormat(dateFormateHms).parse(dateStr);
    }

    /**
     * 解析字符串成date
     * yyyy/MM/dd
     * @param dateStr
     * @return
     * @throws ParseException
     */
    public static Date parseStringSpritToDate(String dateStr) throws ParseException {
        return new SimpleDateFormat(dateSpritFormate).parse(dateStr);
    }


    /**
     * 解析字符串成date
     * yyyy/MM/dd HH:mm:ss
     * @param dateStr
     * @return
     * @throws ParseException
     */
    public static Date parseStringSpritToDateTime(String dateStr) throws ParseException {
        return new SimpleDateFormat(dateSpritFormateHms).parse(dateStr);
    }
}
